// 报表数据项配置
export interface ReportColumnsItem {
  label: string
  prop: string
  children: ReportColumnsItem[]
  [key: string]: any
}

// 报表组件 props
export interface EnergyDataReportProps {
  enterpriseId: string | number // 企业ID
  enterpriseName: string // 企业名称
  year: string | number // 年份
  quarter: string | number // 季度
  tId: number // 表ID
  name: string // 表名称
  columns: ReportColumnsItem[] // 表数据项
  isGovernment?: boolean // 政府端
  readonly?: boolean // 表数据只读
}

// 报表填报负责人、电话、填报人、填报日期等信息
export interface EnergyDataReportInformant {
  personInCharge: string
  informer: string
  telephone: string
  fillInDate: string
}

// 报表数据格式（前端）
export interface EnergyDataReportList<T = any> {
  uuid: string
  data: T[]
  informant?: EnergyDataReportInformant
}

// 加载报表数据请求函数
export interface LoadListParams {
  year: string | number
  quarter: string | number
  tenantId?: string | number
}

export interface SaveListParams<T = any> extends LoadListParams, EnergyDataReportInformant {
  list: T[]
}

export interface ImportListParams extends SaveListParams {
  file: File
}

export interface LoadListFunction {
  (params: LoadListParams): Promise<any>
}

export interface InitInputIndex {
  (): void
}

export enum StatementStatus {
  UNDER_REPORT = 1, // 未上报
  STAGED, // 已暂存
  REPORTED, // 已上报
  RESOLVED, // 已通过
  REJECTED, // 已驳回
}

export type IntervalHandle = ReturnType<typeof setInterval>

export enum TIDS {
  /** 进度节能目标完成情况表 */
  PROGRESS_ENERGY_SAVING_TARGET_COMPLETION_TABLE = 1,
  /** 单位产品综合能耗情况表 */
  TABLE_OF_COMPREHENSIVE_ENERGY_CONSUMPTION_PER_UNIT_PRODUCT = 2,
  /** 主要耗能设备状况表 */
  CONDITION_TABLE_OF_MAJOR_ENERGY_CONSUMING_EQUIPMENT,
  /** 节能改造项目情况表 */
  ENERGY_SAVING_RENOVATION_PROJECT_INFORMATION_TABLE,
  /** 能源消费结构表 */
  ENERGY_CONSUMPTION_STRUCTURE_TABLE,
  /** 公司产品表 */
  COMPANY_PRODUCT_LIST,
  /** 公司指标明细表 */
  DETAILED_LIST_OF_COMPANY_INDICATORS,
  /** 能源消费结构副表 */
  ENERGY_CONSUMPTION_STRUCTURE_SUB_TABLE,
  /** 企业基本情况表 */
  ENTERPRISE_BASIC_INFORMATION_TABLE,
}
